#include <stdio.h>
// 声明交换函数原型
void interchange(int *u,int *v);

int main(int argc, char *argv[]) {
	int x = 5, y = 10;
	printf("Originally x =%d and y = %d. \n", x, y);
//	int *u = &x;
//	int *v = &y;
//	interchange(u, v);
	interchange(&x, &y);
	printf("Now x =%d and y = %d. \n", x, y);
	return 0;
}


// 定义函数，参数为需要交互值的指针
void interchange(int *u, int *v)
{
	// 指针的方式，来交互两个值
	int temp;
	// 通过指针的方式获取 指针u的值，然后赋值给一个临时变量
	temp = *u;
	// 书上说，这句话的意思是 x = y，我怀疑这样就能改变外部 x 的值吗？
	// 我的理解，通过 *v 得到y值，然后通过*u，*u是x的指针，指向*v的值，这样外部x的值就替换了y的值
	*u = *v;
	// 这句话和上面一个意思，temp代表*u取出来的值，将指针*v，指向temp值。
	*v = temp;
}
